$(function() {


    let layer = layui.layer

    initArtCateList()
        // 1.初始化获取文章分类列表页面
        // 封装为一个函数

    function initArtCateList() {
        axios({
            method: "GET",
            url: "/my/article/cates",
        }).then(res => {
            // console.log(res.data);
            if (res.data.status != 0) {
                return layer.msg(res.data.message)
            }
            // 成功渲染到页面中
            let arr = []
            let index = 0
            res.data.data.forEach(ele => {
                index++;
                arr.push(`
                <tr>
                        <td>${index}</td>
                        <td>${ele.name}</td>
                        <td>${ele.alias}</td>
                        <td>
                        <button data-id=${ele.Id} type="button" class="btn-edit  layui-btn layui-btn-xs ">编辑</button>
                            <button type="button" data-id=${ele.Id} class="btn-delet layui-btn layui-btn-xs layui-btn-danger">删除</button>
                        
                        
                        </td>
                    </tr>
                
                `)
            })
            $("tbody").empty().html(arr.join(""))
        })
    }

    // 2.点击添加类别弹出对话框
    let indexAdd = null;
    $("#btnAdd").on("click", function() {
        indexAdd = layer.open({
            type: 1,
            title: '添加文章分类',
            area: ['400px', '250px'],
            content: `
            <form id="formAdd" class="layui-form" action="">
        <!-- 1.名称 -->
        <div class="layui-form-item">
            <label class="layui-form-label">分类名称</label>
            <div class="layui-input-block">
                <input type="text" name="name" required lay-verify="required" placeholder="请输入分类名称" autocomplete="off" class="layui-input">
            </div>
        </div>
        <!-- 2.别名 -->
        <div class="layui-form-item">
            <label class="layui-form-label">分类别名</label>
            <div class="layui-input-block">
                <input type="text" name="alias" required lay-verify="required" placeholder="请输入分类别名" autocomplete="off" class="layui-input">
            </div>
        </div>
        <!-- 3.按钮 -->
        <div class="layui-form-item">

            <div class="layui-input-block">
                <button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
            </div>
        </div>
    </form>
            `


        });

    })

    // 3.添加文章分类,事件委托
    $("body").on("submit", "#formAdd", function(e) {
        e.preventDefault();
        // 发送axios请求
        axios({
            method: "POST",
            url: "/my/article/addcates",
            data: $(this).serialize()
        }).then(res => {
            // console.log(res.data);
            if (res.data.status != 0) {
                return layer.msg(res.data.message)
            }
            // 成功给出提示
            layer.msg("恭喜您,添加文章分类成功")
            layer.close(indexAdd)
            initArtCateList()
        })
    })

    // 4.点击编辑按钮,展示对话框,事件委托
    let form = layui.form;
    let indexEdit = null;
    $("tbody").on("click", ".btn-edit", function() {
        indexEdit = layer.open({
            type: 1,
            title: '修改文章分类',
            area: ['400px', '250px'],
            content: `
            <form lay-filter="formEdit" class="layui-form" id="formEdit">
            <!-- 00 隐藏域-->
            <input type="hidden" name="Id" >
        <!-- 1.名称 -->
        <div class="layui-form-item">
            <label class="layui-form-label">分类名称</label>
            <div class="layui-input-block">
                <input type="text" name="name" required lay-verify="required" placeholder="请输入分类名称" autocomplete="off" class="layui-input">
            </div>
        </div>
        <!-- 2.别名 -->
        <div class="layui-form-item">
            <label class="layui-form-label">分类别名</label>
            <div class="layui-input-block">
                <input type="text" name="alias" required lay-verify="required" placeholder="请输入分类别名" autocomplete="off" class="layui-input">
            </div>
        </div>
        <!-- 3.按钮 -->
        <div class="layui-form-item">

            <div class="layui-input-block">
                <button class="layui-btn" lay-submit lay-filter="formDemo">确认修改</button>
                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
            </div>
        </div>
    </form>
            `
        });

        // 6.展示当前文章名称信息
        let id = $(this).attr("data-id")
        axios({
            method: "GET",
            url: "/my/article/cates/" + id,
        }).then(res => {
            // console.log(res.data);
            if (res.data.status != 0) {
                return layer.msg(res.data.message)
            }
            // 成功后展示数据到表单中
            form.val("formEdit", res.data.data)
        })

    })

    // 7.修改文章分类,事件委托
    $("body").on("submit", "#formEdit", function(e) {
        e.preventDefault();
        axios({
            method: "POST",
            url: "/my/article/updatecate",
            data: $(this).serialize()
        }).then(res => {
            // console.log(res.data);
            if (res.data.status != 0) {
                return layer.msg(res.data.message)
            }
            // 成功给提示,并刷新分类列表显示页面
            layer.msg("恭喜您,修改成功")
                // 关闭对话框
            layer.close(indexEdit)
            initArtCateList()
        })
    })

    // 8.删除分类,弹出对话框
    $("tbody").on("click", ".btn-delet", function() {
        let id = $(this).attr("data-id")
        layer.confirm('确认删除吗?', { icon: 3, title: '提示' }, function(index) {
            // 发送axios删除的请求
            axios({
                method: "GET",
                url: "/my/article/deletecate/" + id
            }).then(res => {
                // console.log(res.data);
                if (res.data.status != 0) {
                    return layer.msg(res.data.message)
                }
                // 成功给提示,刷新页面
                layer.msg("恭喜您,删除分类成功")
                initArtCateList()
            })
            layer.close(index);
        });
    })
})